﻿using System.Collections.Generic;
using System.Threading.Tasks;
using Infrastructure.ExternalService.Core.Responses;

namespace Infrastructure.ExternalService.Core.FundSystem
{
    public interface IFundSystemExternal
    {
        /// <summary>
        /// 电子发票状态查询
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<InvoiceInfoList> GetInvoiceInfoAsync(GetInvoiceRequest request);

        /// <summary>
        /// 学员账户支付校验
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<ValidatePaymentResponse> ValidatePaymentAsync(ValidatePaymentRequest request);

        /// <summary>
        /// 学员账户支付
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<MakePaymentResponse> MakePaymentAsync(MakePaymentRequest request);


        /// <summary>
        /// 通过订单流水号获取支付总金额
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>

        Task<List<PaymentBalance>> GetPaymentAmountAsync(GetPaymentAmountRequest request);
    }
}
